package JZOffer;

/**
 * 剑指 Offer 16. 数值的整数次方
 * 实现 pow(x, n) ，即计算 x 的 n 次幂函数（即，xn）。
 * 不得使用库函数，同时不需要考虑大数问题。
 * */

class Solution16 {
    public double myPow(double x, int n) {
        //边界条件，当n=0时，返回1
        if (n == 0) return 1;
        else if (n < 0) return 1 / (x * myPow(x, - n - 1));
        else if (n % 2 == 1) return x * myPow(x, n - 1);
        else return myPow(x * x, n / 2);
    }
}